1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with a method, system, and computer program product for using calendar events that have been created by users of computer systems to prepare customized responses to incoming events (such as incoming electronic mail, voice calls, etc.), where the response supplies information pertaining to the user.
2. Description of the Related Art
Calendars, and electronic calendars in particular, often contain a wealth of information about their owner. For example, an individual may use an electronic calendar to maintain information about his work schedule, his meetings and other appointments, his vacation and business travel plans (including when he will be away, which flights or other transportation he will use, where he can be reached while away, who he may visit while away, etc.), phone calls that need to be made at particular times, and so forth. Examples of electronic calendaring systems include Microsoft Outlook(copyright) 2000 and Lotus Organizer(copyright), which also allows a user to create entries on his calendar for other people. For example, a secretary might have calendar entries for his own schedule, but also keep information about his manager""s appointments on his own calendar as well. Such systems are quite popular among users. (xe2x80x9cOutlookxe2x80x9d is a registered trademark of Microsoft Corporation, and xe2x80x9cLotus Organizerxe2x80x9d is a registered trademark of Lotus Development Corporation.)
Use of electronic calendaring systems for purposes such as scheduling meetings of multiple persons is known in the art. For example, an invitation list may be created for a particular meeting, and a calendaring software application may then use this list to check each invitee""s calendar for available time periods. A meeting may then be scheduled during a time period in which all (or some majority) of the invitees have sufficient time available on their calendar. However, it is desirable to more fully exploit the information stored in the calendaring system.
As an example, electronic calendar-based engines could be used to drive other software applications and agents, such as e-mail out-of-office agents which would provide automated responses to e-mail informing a sender that the recipient is currently away. Many facilities exist today with which users can configure their e-mail systems to respond with various forms of xe2x80x9cI am awayxe2x80x9d messages, but these facilities require manual intervention by the user. Typically, the user selects a configuration action for his e-mail account and enters information (such as a text string) that he would like to have sent in an automated response upon receipt of incoming e-mail. A time period during which this automated response should be used may be entered; alternatively, the automated response may remain active until the user resets the configuration information for his account. Manual techniques such as these tend to be tedious for the user, especially if the user is frequently away and needs to repeat this configuration process often. Such techniques also tend to become out of date or out of synchronization with the user""s actual status, as the user may forget to change his settings or may simply choose not to change them. It may be difficult for some users to change their status once they have left their office as well, as they may no longer have access to the necessary systems. The more tedious it is for the user to change his configuration settings, the more likely it is that he will choose to let them become out of synchronization with his status. This leads to the undesirable situation where it appears that the user is available and checking his e-mailxe2x80x94and may therefore be expected to reply quickly to messagesxe2x80x94when in fact he is not.
U.S. Pat. No. 5,428,784, which is entitled xe2x80x9cMethod and Apparatus for Linking Electronic Mail and an Electronic Calendar to Provide a Dynamic Response to an Electronic Mail Messagexe2x80x9d discloses a technique for automatically responding to a received e-mail message using information stored in the addressee""s electronic calendar. When an e-mail message is received, its receipt time is compared to the addressee""s electronic calendar to see if any events are currently scheduled. If so, various types of information regarding the scheduled event (such as the start and stop time and what the event comprises) may be returned as a response to the e-mail sender so that the sender can determine whether the addressee is likely to be viewing his e-mail at the present time. If the user""s calendar indicates that he is currently in a meeting or on vacation, for example, it is unlikely that the sender""s mail will be read promptly. If the sender needs an immediate response to his email message, the sender can evaluate the automated response to decide whether to try some other source of information. However, no automated technique for determining these alternative information sources is disclosed. Furthermore, no technique is disclosed for evaluating an electronic calendar for future user availability.
Voice mail systems are also typically manually configured, with the user recording a greeting change each time he is away from the office and again when he returns. As discussed above with reference to manually configuring e-mail systems, the process of manually changing voice mail greetings is especially tedious for those users who need to make changes often, such as those who travel frequently, who attend many off-site meetings or somewhat lengthy meetings, and so forth. Most business people are familiar with the scenario of calling someone""s office and receiving a recorded voice mail message indicating that the callee is away but will return on some particular date, where that date has long since passed.
In addition to the problem of not fully exploiting the information available on an electronic calendar, some existing electronic calendars may be difficult for others to visually inspect. That is, when a calendar owner has many events scheduled, it may be rather difficult for a human reader to determine exactly where that calendar owner is at a particular point in time. Furthermore, it may be quite difficult to determine how to contact the calendar owner at a point in time by visually reviewing his calendar, as the means of contact may vary widely if the owner is in different places throughout the day.
Accordingly, a need exists for a technique which enables calendar-driven personal assistant applications to better serve their users. This technique should take into account the context in which calendar events and calendar information have been created, and use this information in an automated manner to dynamically determine a calendar owner""s availability (and/or other information) and dynamically generate an automated response using information which has been prepared in advance of receiving an incoming event.
An object of the present invention is to provide a technique which enables electronic calendar-driven personal assistant applications to better serve their users by analyzing the calendar events and calendar information in advance of receiving an incoming event.
Another object of the present invention is to provide a technique which enables automated, dynamic generation of responses, using information which has been prepared in advance of receiving an incoming event, to attempts to contact a calendar owner.
Other objects and advantages of the present invention will be set forth in part in the description and in the drawings which follow and, in part, will be obvious from the description or may be learned by practice of the invention.
To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, the present invention provides a system, method, and computer program product for using calendar events and information from an electronic calendar to prepare responses to incoming events. This technique comprises: creating calendar events on an electronic calendar, the calendar events being organized according to a multi-level hierarchy comprising context events at an upper level of the hierarchy and specific events at a lower level of the hierarchy, wherein zero or more specific events may be scheduled on the electronic calendar during any particular context event; analyzing the calendar events created for one or more users to determine information about the users for a particular period of time, storing the determined information; retrieving, upon occurrence of an incoming event, the stored information for a selected one of the one or more users; and using the retrieved information to automatically respond to the incoming event.
The incoming event may be one of (1) detecting arrival of an electronic mail message for the selected user while the selected user""s calendar indicates that he is not currently available for checking his electronic mail (e.g. when the user is out of the office); (2) detecting arrival of an instant message for the selected user while the selected user""s calendar indicates that he is not currently available for instant messaging; (3) detecting an incoming voice call for the selected user where the selected user does not answer the incoming voice call; or (4) receiving a request for instant messaging status for the selected user. In this case, the automatic response preferably comprises a notification informing a sender of the electronic mail message or the instant message, a caller making the incoming voice call, or a requester of the instant messaging status of the selected user""s current status. In another aspect, the incoming event may be receiving a request for project or resource management information, in which case the retrieving operation retrieves stored information for a plurality of users to provide information about the context events and specific events scheduled for the users at a target date and a target time period. In this aspect, the request may ask whether any team member is available at a particular location during a particular time period on a particular date.
The technique may further comprise automatically applying a default context during calendar periods when no other context event is active.
Zero or more attribute values may be specified for each of the context events and each of the specific events. In this case, the analyzing operation preferably further comprises analyzing the specified attributes of a context event and of any specific events that are applicable during the particular period of time. For example, the attribute values may include one or more of: (1) information on how to immediately contact the user; (2) whether, and how often, the user checks electronic mail messages; (3) whether the user is available for instant messaging; 4) whether, and how often, the user checks voice mail messages; and (5) an alternative contact person for the user. In another aspect, the analyzing operation may further comprise determining, for each of the one or more users, when a distinct set of context event, specific event, and attribute values applies, in which case the storing operation preferably further comprises storing a distinct entry for each of the distinct sets. Overrides may be specified for the attribute values, in which case the analyzing operation preferably further comprises applying the overrides to the attribute values prior to operation of the determining process.
Default attribute values may be specified for context event types and for specific event types, and a particular context event and/or a particular specific event may include attribute values which override the default attribute values. In this case, the analyzing operation further comprises applying the overrides to the default attribute values.